cmake_minimum_required(VERSION 3.15)
project(leptjson_test C)


# CMAKE_C_COMPILER_ID：这是 CMake 内置的一个变量，其作用是识别所使用的 C 编译器类型，常见的值有 GNU（代表 GCC）、Clang、MSVC 等。
# MATCHES "GNU|Clang"：该条件会判断当前的 C 编译器是不是 GCC 或者 Clang。
# CMAKE_C_FLAGS：此变量存储着传递给 C 编译器的所有全局编译选项。
# -ansi：该选项会让编译器尽可能地遵循 ANSI C 标准，其效果类似于-std=c89。
# -pedantic：开启该选项后，编译器会对不符合 ANSI C 标准的语法发出警告，不过不会阻止编译进行。
# -Wall：启用所有常见的编译警告，有助于发现潜在的代码问题。
if (CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -pedantic -Wall")
endif()

include_directories(${PROJECT_SOURCE_DIR}/include)

set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/library)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

add_library(leptjson STATIC ${PROJECT_SOURCE_DIR}/src/lib/leptjson.c)
add_executable(leptjson_test ${PROJECT_SOURCE_DIR}/src/app/test.c)
target_link_libraries(leptjson_test leptjson)

